package com.ruoyi.factorydata.mapper;

import com.ruoyi.factorydata.domain.dto.HomePlanedProductionDTO;
import com.ruoyi.factorydata.domain.dto.HomeTopRankProjectDTO;
import com.ruoyi.factorydata.domain.dto.HomeWorkOrderLineDTO;

import java.util.List;

public interface HomeStatisticsMapper {

    /**
     * 获取项目总数, 用于首页
     * @param homePlanedProductionDTO
     * @return
     */
    Long getHomeProjectNumber(HomePlanedProductionDTO homePlanedProductionDTO);

    /**
     * 获取进行中的项目数
     * @param homePlanedProductionDTO
     * @return
     */
    Long getHomeProcessProjectNumber(HomePlanedProductionDTO homePlanedProductionDTO);

    /**
     * 获取计划产量, 用于首页
     * @param homePlanedProductionDTO
     * @return
     */
    Long getHomePlanedProductionNumber(HomePlanedProductionDTO homePlanedProductionDTO);

    /**
     * 获取已完成的产量, 用于首页
     * @param homePlanedProductionDTO
     * @return
     */
    Long getHomeComPlatedProductionNumber(HomePlanedProductionDTO homePlanedProductionDTO);

    /**
     * 获取所有工单数, 用于首页
     * @param homePlanedProductionDTO
     * @return
     */
    Long getHomeAllWorkOrderNumber(HomePlanedProductionDTO homePlanedProductionDTO);

    /**
     * 获取未处理的工单数, 用于首页
     * @param homePlanedProductionDTO
     * @return
     */
    Long getHomeUnProcessWorkOrderNumber(HomePlanedProductionDTO homePlanedProductionDTO);
    /**
     * 获取进行中的工单数, 用于首页
     * @param homePlanedProductionDTO
     * @return
     */
    Long getHomeProcessWorkOrderNumber(HomePlanedProductionDTO homePlanedProductionDTO);

    /**
     * 获取已完成的工单数, 用于首页
     * @param homePlanedProductionDTO
     * @return
     */
    Long getHomeGetComPlatedWorkOrderNumber(HomePlanedProductionDTO homePlanedProductionDTO);

    /**
     * 获取工单计划产量, 用于首页
     * @param homeWorkOrderLineDTO
     * @return
     */
   List<HomeWorkOrderLineDTO.WorkOrderPlanedProduction> getWorkOrderPlanedProductionNumber(HomeWorkOrderLineDTO homeWorkOrderLineDTO);

    /**
     * 获取工单完工产量, 用于首页
     * @param homeWorkOrderLineDTO
     * @return
     */
    List<HomeWorkOrderLineDTO.WorkOrderComPlatedProduction> getWorkOrderComPlatedProductionNumber(HomeWorkOrderLineDTO homeWorkOrderLineDTO);

    /**
     * 获取项目负责人TOP排名数据, 用于首页
     * @param homeTopRankProjectDTO
     * @return
     */
    List<HomeTopRankProjectDTO> getHomeTopRankProject(HomeTopRankProjectDTO homeTopRankProjectDTO);
}
